<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.13"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Alexa Auto SDK: aace::alexa::LocalMediaSource Class Reference</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="aace-logo.png"/></td>
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Alexa Auto SDK
   &#160;<span id="projectnumber">2.2.0</span>
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.13 -->
<script type="text/javascript">
var searchBox = new SearchBox("searchBox", "search",false,'Search');
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
$(function() {
  initMenu('',true,false,'search.php','Search');
  $(document).ready(function() { init_search(); });
});
</script>
<div id="main-nav"></div>
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div id="nav-path" class="navpath">
  <ul>
<li class="navelem"><b>aace</b></li><li class="navelem"><b>alexa</b></li><li class="navelem"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html">LocalMediaSource</a></li>  </ul>
</div>
</div><!-- top -->
<div class="header">
  <div class="summary">
<a href="#nested-classes">Classes</a> &#124;
<a href="#pub-types">Public Types</a> &#124;
<a href="#pub-methods">Public Member Functions</a> &#124;
<a href="classaace_1_1alexa_1_1_local_media_source-members.html">List of all members</a>  </div>
  <div class="headertitle">
<div class="title">aace::alexa::LocalMediaSource Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div>  </div>
</div><!--header-->
<div class="contents">
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source_1_1_playback_state.html">PlaybackState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source_1_1_session_state.html">SessionState</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
<tr class="memitem:a193e995a51acffd671f2e9b93fe176b3"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a> { <br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045">Source::BLUETOOTH</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf">Source::USB</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65">Source::FM_RADIO</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217">Source::AM_RADIO</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8">Source::SATELLITE_RADIO</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5">Source::LINE_IN</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf">Source::COMPACT_DISC</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67">Source::SIRIUS_XM</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc">Source::DAB</a>
<br />
 }</td></tr>
<tr class="separator:a193e995a51acffd671f2e9b93fe176b3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae2468e3779807990305dfd341ca3d19d"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">ContentSelector</a> { <br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19da1e3e433edd76f91457ea26d0ae88ec2f">ContentSelector::FREQUENCY</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19daf52e9c50a060add65a035429b2a22229">ContentSelector::CHANNEL</a>, 
<br />
&#160;&#160;<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19dae02d6531f660a4cb37e2e978136891f6">ContentSelector::PRESET</a>
<br />
 }</td></tr>
<tr class="separator:ae2468e3779807990305dfd341ca3d19d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea96a47b1442b4c5fa2906b2e0d9a4a9"><td class="memItemLeft" align="right" valign="top">using&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#aea96a47b1442b4c5fa2906b2e0d9a4a9">PlayControlType</a> = ExternalMediaAdapter::PlayControlType</td></tr>
<tr class="separator:aea96a47b1442b4c5fa2906b2e0d9a4a9"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
<tr class="memitem:ab6fdd7996ddcadc828f3f9de03824626"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ab6fdd7996ddcadc828f3f9de03824626">play</a> (<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">ContentSelector</a> contentSelectorType, const std::string &amp;payload)=0</td></tr>
<tr class="separator:ab6fdd7996ddcadc828f3f9de03824626"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad541a6f60242ad371b453570e1e8da4d"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ad541a6f60242ad371b453570e1e8da4d">playControl</a> (<a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#aea96a47b1442b4c5fa2906b2e0d9a4a9">PlayControlType</a> controlType)=0</td></tr>
<tr class="separator:ad541a6f60242ad371b453570e1e8da4d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af1bdc078c4702c3f8b7a864dd0095a47"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#af1bdc078c4702c3f8b7a864dd0095a47">seek</a> (std::chrono::milliseconds offset)=0</td></tr>
<tr class="separator:af1bdc078c4702c3f8b7a864dd0095a47"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5514b48fe84f065ef8b115de0b6b8c3"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae5514b48fe84f065ef8b115de0b6b8c3">adjustSeek</a> (std::chrono::milliseconds deltaOffset)=0</td></tr>
<tr class="separator:ae5514b48fe84f065ef8b115de0b6b8c3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab548e09fd634975590e4fd3bf2843682"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ab548e09fd634975590e4fd3bf2843682">getState</a> ()=0</td></tr>
<tr class="separator:ab548e09fd634975590e4fd3bf2843682"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa4a2d08e30728bcfb35bcba0f4921aa1"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#aa4a2d08e30728bcfb35bcba0f4921aa1">volumeChanged</a> (float volume)=0</td></tr>
<tr class="separator:aa4a2d08e30728bcfb35bcba0f4921aa1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afe2c689e38a4e5f8bd6ebd630412cef7"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#afe2c689e38a4e5f8bd6ebd630412cef7">mutedStateChanged</a> (<a class="el" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">MutedState</a> state)=0</td></tr>
<tr class="separator:afe2c689e38a4e5f8bd6ebd630412cef7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7876023493487be41be9044c198dfba2"><td class="memItemLeft" align="right" valign="top"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">Source</a>&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a7876023493487be41be9044c198dfba2">getSource</a> ()</td></tr>
<tr class="separator:a7876023493487be41be9044c198dfba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a874c1999278a4a9598b2cfddf2639563"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a874c1999278a4a9598b2cfddf2639563">playerEvent</a> (const std::string &amp;eventName)</td></tr>
<tr class="separator:a874c1999278a4a9598b2cfddf2639563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5a007447092c61ff90785b4fa9fa0fd3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a5a007447092c61ff90785b4fa9fa0fd3">playerError</a> (const std::string &amp;errorName, long code, const std::string &amp;description, bool fatal)</td></tr>
<tr class="separator:a5a007447092c61ff90785b4fa9fa0fd3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad1217e4c192da618ae846ba57c8611ac"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ad1217e4c192da618ae846ba57c8611ac">setFocus</a> (bool focusAcquire=true)</td></tr>
<tr class="separator:ad1217e4c192da618ae846ba57c8611ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock"><p><code><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html">LocalMediaSource</a></code> should be extended to use Alexa to switch among media sources local to the device. It supports bluetooth, USB, FM radio, AM radio, satellite radio, audio line, and CD player sources. It enables playback for these sources via Alexa (e.g. "Alexa, play the CD player"), or via the playback controller.</p>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classaace_1_1alexa_1_1_playback_controller.html">PlaybackController</a> </dd></dl>
</div><h2 class="groupheader">Member Typedef Documentation</h2>
<a id="aea96a47b1442b4c5fa2906b2e0d9a4a9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea96a47b1442b4c5fa2906b2e0d9a4a9">&#9670;&nbsp;</a></span>PlayControlType</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">using aace::alexa::LocalMediaSource::PlayControlType =  ExternalMediaAdapter::PlayControlType</td>
        </tr>
      </table>
</div><div class="memdoc">
<dl class="section see"><dt>See also</dt><dd>ExternalMediaAdapterState </dd></dl>

</div>
</div>
<h2 class="groupheader">Member Enumeration Documentation</h2>
<a id="a193e995a51acffd671f2e9b93fe176b3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a193e995a51acffd671f2e9b93fe176b3">&#9670;&nbsp;</a></span>Source</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">aace::alexa::LocalMediaSource::Source</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The Local Media Source type </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3a8de8a62c3191fb6cf61e0ac4b2b59045"></a>BLUETOOTH&#160;</td><td class="fielddoc"><p>bluetooth source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3a7aca5ec618f7317328dcd7014cf9bdcf"></a>USB&#160;</td><td class="fielddoc"><p>USB source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3aedcb4026e4075f9367b903d5b2c97e65"></a>FM_RADIO&#160;</td><td class="fielddoc"><p>FM radio source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3abcae55301ccf164120b76b74b960f217"></a>AM_RADIO&#160;</td><td class="fielddoc"><p>AM radio source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3ac88fb9fa48ad5e1cf455de65f0a769a8"></a>SATELLITE_RADIO&#160;</td><td class="fielddoc"><p>satellite radio source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3a8ed9247709b828e86d4db1e0a207e2c5"></a>LINE_IN&#160;</td><td class="fielddoc"><p>audio line source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3a22339bd4fde59838518b6304cb6a0caf"></a>COMPACT_DISC&#160;</td><td class="fielddoc"><p>CD player source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3acfe28902332d7da3436d56bd02e24d67"></a>SIRIUS_XM&#160;</td><td class="fielddoc"><p>SIRIUS XM source </p>
</td></tr>
<tr><td class="fieldname"><a id="a193e995a51acffd671f2e9b93fe176b3ab30917aa48bf6125b9e85daf9c6eb5fc"></a>DAB&#160;</td><td class="fielddoc"><p>DAB source </p>
</td></tr>
</table>

</div>
</div>
<a id="ae2468e3779807990305dfd341ca3d19d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae2468e3779807990305dfd341ca3d19d">&#9670;&nbsp;</a></span>ContentSelector</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">aace::alexa::LocalMediaSource::ContentSelector</a></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">strong</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>The Local Media Content Selection type for the play directive </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ae2468e3779807990305dfd341ca3d19da1e3e433edd76f91457ea26d0ae88ec2f"></a>FREQUENCY&#160;</td><td class="fielddoc"><p>radio station selection </p>
</td></tr>
<tr><td class="fieldname"><a id="ae2468e3779807990305dfd341ca3d19daf52e9c50a060add65a035429b2a22229"></a>CHANNEL&#160;</td><td class="fielddoc"><p>radio channel selection </p>
</td></tr>
<tr><td class="fieldname"><a id="ae2468e3779807990305dfd341ca3d19dae02d6531f660a4cb37e2e978136891f6"></a>PRESET&#160;</td><td class="fielddoc"><p>preset selection </p>
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Member Function Documentation</h2>
<a id="ab6fdd7996ddcadc828f3f9de03824626"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab6fdd7996ddcadc828f3f9de03824626">&#9670;&nbsp;</a></span>play()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::play </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#ae2468e3779807990305dfd341ca3d19d">ContentSelector</a>&#160;</td>
          <td class="paramname"><em>contentSelectorType</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>payload</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called when the user calls play with a content selection type</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">ContentSelector</td><td>Content selection type</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">payload</td><td>Content selector payload (i.e. "1", "98.7 FM HD 1")</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>

</div>
</div>
<a id="ad541a6f60242ad371b453570e1e8da4d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad541a6f60242ad371b453570e1e8da4d">&#9670;&nbsp;</a></span>playControl()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::playControl </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#aea96a47b1442b4c5fa2906b2e0d9a4a9">PlayControlType</a>&#160;</td>
          <td class="paramname"><em>controlType</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Occurs during playback control via voice interaction or <a class="el" href="classaace_1_1alexa_1_1_playback_controller.html">PlaybackController</a> interface</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">controlType</td><td>Playback control type being invoked</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>
<dl class="section see"><dt>See also</dt><dd><a class="el" href="classaace_1_1alexa_1_1_playback_controller.html">PlaybackController</a> </dd></dl>

</div>
</div>
<a id="af1bdc078c4702c3f8b7a864dd0095a47"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af1bdc078c4702c3f8b7a864dd0095a47">&#9670;&nbsp;</a></span>seek()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::seek </td>
          <td>(</td>
          <td class="paramtype">std::chrono::milliseconds&#160;</td>
          <td class="paramname"><em>offset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called when the user invokes media seek via speech.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">offset</td><td>Offset position within media item, in milliseconds</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>

</div>
</div>
<a id="ae5514b48fe84f065ef8b115de0b6b8c3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae5514b48fe84f065ef8b115de0b6b8c3">&#9670;&nbsp;</a></span>adjustSeek()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::adjustSeek </td>
          <td>(</td>
          <td class="paramtype">std::chrono::milliseconds&#160;</td>
          <td class="paramname"><em>deltaOffset</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Called when the user invokes media seek adjustment via speech.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">deltaOffset</td><td>Change in offset position within media item, in milliseconds</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>

</div>
</div>
<a id="ab548e09fd634975590e4fd3bf2843682"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab548e09fd634975590e4fd3bf2843682">&#9670;&nbsp;</a></span>getState()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual <a class="el" href="classaace_1_1alexa_1_1_local_media_source_1_1_local_media_source_state.html">LocalMediaSourceState</a> aace::alexa::LocalMediaSource::getState </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Must provide the local media source , and  information to maintain cloud sync </p>

</div>
</div>
<a id="aa4a2d08e30728bcfb35bcba0f4921aa1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa4a2d08e30728bcfb35bcba0f4921aa1">&#9670;&nbsp;</a></span>volumeChanged()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::volumeChanged </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>volume</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Notifies the platform implementation to set the volume of the output channel. The <code>volume</code> value should be scaled to fit the needs of the platform.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">volume</td><td>The volume to set on the output channel. <code>volume</code> is in the range [0,1]. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>

</div>
</div>
<a id="afe2c689e38a4e5f8bd6ebd630412cef7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afe2c689e38a4e5f8bd6ebd630412cef7">&#9670;&nbsp;</a></span>mutedStateChanged()</h2>

<div class="memitem">
<div class="memproto">
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual bool aace::alexa::LocalMediaSource::mutedStateChanged </td>
          <td>(</td>
          <td class="paramtype"><a class="el" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05">MutedState</a>&#160;</td>
          <td class="paramname"><em>state</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">pure virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">
<p>Notifies the platform implementation to apply a muted state has changed for the output channel</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">state</td><td>The muted state to apply to the output channel. <code><a class="el" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05acd1ae4f9f957c14ebf6f0e57671dc020">MutedState::MUTED</a></code> when the output channel be muted, <code><a class="el" href="classaace_1_1audio_1_1_audio_output.html#ad03cbdbbf172fd64a16c16b64d8a4b05a760f8b47116ad0f3481f06d99b17e12c">MutedState::UNMUTED</a></code> when unmuted </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd><code>true</code> if the platform implementation successfully handled the call, else <code>false</code> </dd></dl>

</div>
</div>
<a id="a7876023493487be41be9044c198dfba2"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7876023493487be41be9044c198dfba2">&#9670;&nbsp;</a></span>getSource()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classaace_1_1alexa_1_1_local_media_source.html#a193e995a51acffd671f2e9b93fe176b3">LocalMediaSource::Source</a> aace::alexa::LocalMediaSource::getSource </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Return the source type the interface registered with </p>

</div>
</div>
<a id="a874c1999278a4a9598b2cfddf2639563"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a874c1999278a4a9598b2cfddf2639563">&#9670;&nbsp;</a></span>playerEvent()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void aace::alexa::LocalMediaSource::playerEvent </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>eventName</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Should be called on a local media source player event. This will sync the context with AVS.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">eventName</td><td>Canonical event name </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="a5a007447092c61ff90785b4fa9fa0fd3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5a007447092c61ff90785b4fa9fa0fd3">&#9670;&nbsp;</a></span>playerError()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void aace::alexa::LocalMediaSource::playerError </td>
          <td>(</td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>errorName</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">long&#160;</td>
          <td class="paramname"><em>code</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>description</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>fatal</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Should be called on a local media source player error.</p>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">errorName</td><td>The name of the error</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">code</td><td>The error code</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">description</td><td>The detailed error description</td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">fatal</td><td>true if the error is fatal </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ad1217e4c192da618ae846ba57c8611ac"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad1217e4c192da618ae846ba57c8611ac">&#9670;&nbsp;</a></span>setFocus()</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">void aace::alexa::LocalMediaSource::setFocus </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>focusAcquire</em> = <code>true</code></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Should be called on local media source player events. This will switch the media focus to that context. </p>

</div>
</div>
</div><!-- contents -->
<html>
  <body>
    <hr style="height:1px;border-width:0;color:gray;background-color:gray">
    <p style="text-align:left;">
      Alexa Auto SDK 2.2.0 - Copyright 2017-2020 Amazon.com, Inc. or its affiliates. All Rights Reserved.
      <span style="float:right;">
        Licensed under the <a HREF=http://aws.amazon.com/apache2.0/>Apache License, Version 2.0</a>
      </span>
    </p>
  </body>
</html>
